AI 存储功能指南
功能简介
AI 存储是一个基于多模态向量模型的智能文件管理系统,支持图片的智能上传、AI 语义搜索和以图搜图功能。通过向量化技术和 AI 分析,实现了对图片内容的深度理解和高效检索。
💡核心能力
支持文本语义搜索和图片相似度搜索,自动为上传的图片生成 AI 内容描述。
前置准备
配置多模态向量模型
系统支持以下多模态向量模型:
- 阿里云百炼:multimodal-embedding-v1
- 火山引擎:doubao-embedding-vision-250615
⚠模型选择
确保选择的模型支持图片向量化,普通文本向量模型无法处理图片内容。
配置向量数据库
在系统中配置向量数据库,用于存储文件的向量表示。支持 Milvus、Pgvector、Chroma、Qdrant 等向量数据库。
使用指南
界面布局
AI 存储功能采用左右分栏布局:
- 左侧:分组管理面板,包含系统分组和自定义分组
- 右侧:文件网格展示区,支持搜索、批量操作和文件管理
分组管理
系统分组
系统提供两个内置分组:
- 所有文件:展示所有已上传的文件
- 最近上传:展示最近上传的 6 个文件
自定义分组
支持创建自定义分组来组织文件:
- 点击"我的分组"旁的加号按钮
- 输入分组名称和描述
- 可选择父分组实现分组嵌套
- 保存后即可在分组树中查看
💡分组操作
鼠标悬停在分组上会显示编辑和删除按钮,支持快速管理分组。
上传图片
- 点击左侧面板的"上传图片"按钮
- 选择需要上传的图片文件(支持 PNG、JPG、JPEG 格式)
- 单次最多上传 20 张图片,单个文件最大 2MB
- 上传完成后系统自动触发 AI 分析
⚠自动分析
图片上传后会自动进行向量化处理和 AI 内容分析,处理时间取决于图片大小和模型响应速度。
文本语义搜索
在搜索框中输入关键词,系统会基于 AI 语义理解进行搜索:
- 输入搜索关键词(支持中英文)
- 可选择文件类型进行过滤
- 可选择排序方式(最新、名称、大小)
- 按回车键或点击搜索执行查询
💡语义搜索
不同于传统文件名搜索,语义搜索会匹配图片的 AI 内容描述,例如搜索"山川"可以找到包含山水风景的图片。
以图搜图
点击搜索框右侧的"以图搜图"按钮:
- 选择一张本地图片
- 系统自动将图片向量化
- 在向量数据库中查找相似图片
- 返回相似度最高的图片列表
✓应用场景
以图搜图适用于查找相似风格的图片、寻找重复文件或发现视觉上相关的内容。
实现原理
文件上传与向量化流程
graph LR
A[上传图片] --> B[保存文件信息]
B --> C[读取文件流]
C --> D[转换为 Base64]
D --> E[调用多模态模型]
E --> F[生成向量 embedding]
F --> G[存储到向量数据库]
G --> H[更新 AI 分析状态]
详细流程说明
- 用户上传图片后,前端调用 POST /storage/file 接口保存文件信息
- 后端异步调用 embedFile 方法进行向量化处理
- 从文件存储中读取原始图片流,转换为 Base64 格式
- 调用多模态向量模型(Ark 或阿里云)生成 embedding 向量
- 验证并创建向量数据库存储实例
- 将向量和元数据(type=STORAGE_FILE, id=fileId)存储到向量库
- 更新文件记录的 ai_analyzed 状态为已分析
文本搜索流程
graph LR
A[输入关键词] --> B[文本向量化]
B --> C[向量相似度搜索]
C --> D[过滤 type=STORAGE_FILE]
D --> E[返回文件 ID 列表]
E --> F[批量查询文件实体]
F --> G[返回搜索结果]
后端接口:GET /storage/search?keyword=xxx
以图搜图流程
graph LR
A[上传查询图片] --> B[图片转 Base64]
B --> C[多模态模型向量化]
C --> D[向量相似度搜索]
D --> E[返回相似文件列表]
后端接口:POST /storage/search/image